GNUM16CM32C v0802

June 4th, 2008

KPIT Cummins Infosystems Limited is releasing GNUM16CM32C v0802, a cross
compiler toolchain for Renesas (formerly Hitachi and Mitsubishi) R8C, M16C,
M32C and M32CM series of microcontrollers.

SALIENT FEATURES:

1.

The GNUM16CM32C v0802 is based on gcc-4.2-20080402, binutils-2.18.50, newlib-1.16.0 and gdb-6.8 (released).

2.

The latest patches are applied to gcc, binutils and newlib sources.

3. 

A new binary utility, "m32c-elf-libgen", is provided along with this toolchain. This utility builds the standard/optimized libraries with customized compiler and assembler options. Until now, only the pre-built libraries were provided with the toolchain.

4.

A new phase "Library Generator" is added in HEW for supporting the "m32c-elf-libgen" tool. 

ABOUT GNUM16CM32C v0802:

Release version:

GNUM16CM32C v0802

Release Date:

June 4th, 2008

Platforms Supported:

Red Hat GNU/Linux v8.0 or later (or compatible distribution)
Windows NT/2000/XP

Language:

C

Targets: R8C      : R8C/Tiny

M16C    : M16C/10, M16C/20, M16C/Tiny, M16C/30, M16C/60

M32CM  : M16C/80

M32C    : M32C/80, M32C/90

Object File Format:

ELF


For free technical support register at http://www.kpitgnutools.com
For your feedback and suggestions visit http://www.kpitgnutools.com/feedback.php
 

CHANGES IN THIS RELEASE:

This section describes the enhancements and the problems fixed in this release.

GCC:

1.

Following testcase printed incorrect value for float variable "fNum3" for all M16C target variants. This behavior was observed while subtracting two float numbers between a range of 16 and 32 and with very close values.

#include <stdio.h>
int main (void)
{
float fNum1 = 22.6893, fNum2 = 22.68227;
float fNum3 = fNum1 - fNum2;
printf ("\n Subtraction of two floats is %f\n", fNum3);
return (0);
}

This bug is now fixed.

BINUTILS:

1.

The "libgen" utility facilitates rebuilding of the Newlib or the optimized libraries along with the application. Using this tool, user can build the selected standard libraries with customized compiler and assembler options thus generating libraries that are fine tuned with the application. 

Refer to the following link for command line usage of "libgen" utility, 

http://www.kpitgnutools.com/manuals/binutils.html#SEC15 

2.

The GNU assembler generated relocation error for "H'1234" format representation of hexadecimal constants. 

This bug is now fixed to display an error which guides the user to use "0x1234" format.

NEWLIB:

1.

The 'snprintf' function used to cause memory leak, resulting into the "Heap 
and Stack Collision" error for the following testcase,
 

#include <stdlib.h>
#include <stdio.h>

int main ()
{
int Length = 0, i = 0;
char * Str1_p;
char * Str2_p;
char * Str3_p;
for (i=0; i<=20000;i++)
{
Length = snprintf(NULL, 0, "%s %s", Str1_p, Str2_p);
Str3_p = (char *) malloc (Length + 1); //+ 1 is for null
Length=snprintf(Str3_p, Length+1, "%s %s", Str1_p, Str2_p);
free (Str3_p);
}

return 0;
}
This bug is now fixed.

 

HEW (For Windows OS only):

1.  

A new phase, "Library Generator" is added to interface the "libgen" tool in HEW. The settings for this phase are as follows, 

a.

The "Settings" tab provides the options to select the type of the library i.e. 'Pre-Built' or 'Project-Built', the source i.e. 'Newlib' or 'Optimized' and the mode used for building the library.

b.

The "Header files" tab provides the option to select the standard header files for building the library.

c.

The "Other options" tab allows the user defined options to be passed to the "Library Generator" phase. 

2.

The stack trace window in HEW displays the function call history of an application. It also displays the parameters and the local variables of the functions. Till v0801, the complete function call history was not displayed in the stack trace window. This problem is now fixed and the complete stack trace is now visible while debugging the application on the hardware using E8 emulator.

3. The #elif, #error and #warning keywords are added to the syntax highlighting list of C/ C++ source files, C/ C++ header files and pre-processed assembly files. The #import keyword has been added to the syntax highlighting list of C++ source files and C++ header files.
4.

In the HEW output window, if a warning was split into two lines, the first line would get marked as an error.
This bug is now fixed.

 

KNOWN PROBLEMS IN M16CM32C-ELF:

This section describes the known problems in this release. We intend to fix the known problems in our

future releases.
We also release Maintenance Packs for critical bugs fixed in between releases.

 

Windows and GNU/Linux:

1.

The structure alignment is by default, set to single byte alignment.
Therefore, usage of the structure packing attribute or command line options
has no effect on the generated code.

2.

The 'tan' function fails in the optimized libraries for M32C and M32CM target.

3.

Library Generator: Refer to the following link for the known issues and limitations of this utility,
http://www.kpitgnutools.com/phpmyfaq/index.php?aktion=artikel&rubrik=008002&id=417&lang=en

       

HEW (For Windows OS only):

1.

The complete stack trace is not visible while debugging the application using
 simulator.

2. Library Generator: Currently, after changing the Library Generator settings,
the user is prompted to open the Complier/ Linker option dialogs and click on
‘OK’. We are aware of the inconvenience to the users and will provide a fix
in future releases.

 

NOTE:

Windows and GNU/Linux:

1. 

The optimized libraries are provided along with the Newlib libraries in the
toolchain and do not require separate download.

2.

The optimized libraries ('liboptm.a' and 'liboptc.a') are not provided
under GNU GPL. The source code of these optimized libraries is neither
released nor available on request.

3. The "libgen" utility is not provided under GNU GPL. The source code of the "libgen" utility is neither released nor available on request.